(function() {
    // 函数创建一个命名空间

    window.foo = function() {
        // 对外公开的函数，创建了闭包
    };

})(); // 立即执行此匿名函数

(// 小括号内的函数首先被执行
    function() {}
) // 并且返回函数对象
() // 调用上面的执行结果，也就是函数对象
//有一些其他的调用函数表达式的方法，比如下面的两种方式语法不同，但是效果一模一样。

// 另外两种方式
+function(){}();
(function(){}());